Sharing resources in networked computers, such as processors, computer memories, network bandwidth and data storage facilities, can increase efficiency by reducing maintenance and operating costs, allowing flexibility with respect to individual resource usage, and simplifying resource management. With respect to shared storage, the benefits include data consolidation, universal access to data, ease of storage management, and support for live migration of virtual machines (VMs) for virtualized environments.
However, sharing of resources present challenges with respect to allocation of the resources to the consuming entities, such as VMs. As an example, the current demands of the consuming entities with respect to the resources may need to be considered in allocating the resources. As another example, the consuming entities may vary in terms of their importance, and thus, more important consuming entities may require more of the resources relative to the other less important consuming entities. In addition to these challenges, a resource allocation scheme may need to be scalable with respect to the number of consuming entities and/or with respect to the infrastructure that supports the consuming entities.